
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>纯CSS实现精美的选择按钮</title>
    <!-- 第二步：css样式部分 -->
    <style>
        input[type=checkbox].oval {
            visibility: hidden;
        }
        /* 开关默认样式 */
        label.toggler {
            width: 85px; 
            height: 35px; 
            position: relative;
            display: block;
            border-radius: 25px;
            left: 0;
            top: 0;
            background: #7A7A7A; 
            z-index: 50;
            font: bold 12px Arial;
            cursor: pointer;
        }
        /* 开关默认关闭背景色灰色 */
        label.toggler::before {
            text-shadow: 0 -2px 1px #8a8a8a;
            content: '关';
            position: absolute;
            color: white;
            top: 9px;
            left: 64%;
        }
        /* 开关上面的那个圆圈样式 */
        label.toggler::after {
            content: '';
            display: block;
            width: 40px;
            height: 40px;
            border-radius: 40px;
            /* 开关速度 */
            transition: all .2s ease;
            box-shadow: 0 5px 10px rgba(0,0,0,.5), 
                        2px -5px 5px rgba(0,0,0,.2) inset;
            position: absolute;
            top: -3px;
            left: 0px;
            background: rgb(255,255,255);
        }
        /* 开关选中后换选中的背景色 */
        input[type=checkbox]:checked + label {
            background: #9FBA48;
        }
        
        /* 开关选中后更改文字 */
        input[type=checkbox]:checked + label::before {
            content: '开';
            left: 11%;
        }

        /* 开关选中后移动开关上面的圆圈 */
        input[type=checkbox]:checked + label::after {
            left: 45px;
        }
    </style>
</head>
<body style="background: #f1f1f1;">
    <!-- 第一步：开关HTML布局，使用checkbox -->
    <div style="margin:200px 0px 0px 50%;">
    <input type="checkbox" id="checkbox" class="oval" />
    <label class="toggler" for="checkbox"></label>
    </div>
</body>
</html>